<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      width: 300px;
      height: 200px;
      border: 1px solid gray;
      overflow: scroll;
    }

    /*
    p {
      width: 800px;
    }

    #item {
      width: 50px;
      background-color: red;
      margin-left: 300px;
    }*/
  </style>
</head>

<body>
  <button id="btnGo">scroll</button>
  <div class="box">
    <p>xxx</p>
    <p>xxx</p>
    <p>xxx</p>
    <p>xxx</p>
    <p>xxx</p>
    <p>xxx</p>
    <p>xxx</p>
    <p id="item">OOO</p>
    <p>xxx</p>
    <p>xxx</p>
    <p>xxx</p>
    <p>xxx</p>
    <p>xxx</p>
    <p>xxx</p>
    <p>xxx</p>
    <p>xxx</p>
  </div>

  <script>
    const item = document.querySelector('#item')
    document.querySelector('#btnGo').onclick = () => {
      // 子元素调用自身的 scrollIntoView 方法，可以把自己呈现到父容器的可视区域中！！！
      item.scrollIntoView({
        // smooth 表示平滑滚动
        behavior: 'smooth',
        // 定义垂直方向的对齐（end 表示"元素的底端"将和其所在滚动区的可视区域的底端对齐）
        block: 'end'
      })
    }
  </script>
</body>

</html>